前幾天已經介紹了基礎的 MCU 使用工具,而今天要來分享一下究竟有哪些 EdgeAI 工具(或 Framework 可以使用)
首先,其實除了後續要使用的 ST EdgeAI 系列工具以外,還有存在非常多的 EdgeAI Framework,以下就先舉幾個例子:
底下是一個簡單的表格整理了幾個不同的 AI Frameworks / Tools 的差異:
工具/Frameworks | 支援裝置(MCUs) | 優點 | 缺點 |
---|---|---|---|
X-Cube-AI | STM32 MCUs | 針對 STM32 系列優化並且容易透過 STM32Cube 系列工具使用 | 只能在 STM32 系列晶片使用 |
TFLite Micro | 非常多的 MCU 都可使用 | 高彈性且活躍的開發社群 | 但並不一定有針對特定的硬體做優化 |
uTensor | ARM Cortex-M MCUs(應該?) | Lightweight | 看起來還沒有很成熟 |
CMSIS-NN | ARM Cortex-M MCUs | 高效能且低記憶體使用 | 上手很有挑戰,幾乎都是非常底層的實現 |
Edge Impluse | 許多裝置都支援 | 上手容易,而且功能超級多 | 必須使用雲端,而且相比於上述的幾個在開發上彈性較低 |
其實除了這個以外還有一個比較特別的 Repository 可以分享,這是 MIT 的實驗室所開發的 MCUNet,根據論文的內文,他們並不僅僅只是透過解釋器去實現整個,而是透過一個搜尋器(TinyNAS)去尋找最適合現在設備推理的網路架構,在透過特別優化的 inference engine(TinyEngine) 來進行推理。
如下圖(取自 MCUNet):
而透過這個系統所給出的結果是會大大增進推理效率以及 memory footprint (圖取自 MCUNet):
但實際上詳細內文我還在研究中,如果能在30天有成果再分享(天方夜譚?
今天就先簡單分享一些 EdgeAI 的不同選擇,明天開始正式使用 ST EdgeAI 相關的 Tools 看看究竟是怎麼一回事~